with Matiere; use Matiere;
with Diplome; use Diplome;

package Classer is

   type Type_Champ is (Etat, Coefficient, Note, Intitule);
   type Type_Ordre is (Croissant, Decroissant);

   Type Type_Critere is Record
      Champ : Type_Champ;
      Ordre : Type_Ordre;
   end Record;

   subType Type_Nombre_Criteres is Positive Range 1..4;
   type Type_Tab_Criteres is array(Type_Nombre_Criteres) of Type_Critere;
   Type Type_Criteres is Record
      Nombre : Type_Nombre_Criteres;
      Tab :Type_Tab_Criteres;
   end record;

   function inferieur(X,Y : Type_Matiere ; Criteres : Type_Criteres ;Position : Type_Nombre_Criteres := 1) return Boolean;
   procedure Classer(Diplome : in out Type_Diplome; Criteres : Type_Criteres);

end Classer;